Particle Type

粒子分类的讨论

借鉴 LS-DYNA 的设计思维,对材料类型、接触类型进行分类,并将在后续使用关键字设计。

概述

粒子分类是建立 SPH 算法数据结构的基础。

粒子分类从相态上大致可分为气、固、液三相。

相态 粒子类型 粒子属性
边界 20 刚性粒子
刚体固态 30 浮体刚体粒子
淡水 50 液态流体粒子,密度 1000 kg/m^3,粘性 0.001 Pa*s
海水 51 液态流体粒子,密度 1025 kg/m^3,粘性 0.001 Pa*s
自定义液体 52 液态流体粒子
理想气体 110 流体粒子,压强 1 atm,密度 1.225 kg/m^3,粘性 0.001 Pa*s
自定义气体 111 流体粒子
弹性固态 230 弹性粒子

边界粒子 [20, 29], 刚体粒子 [30, 39], 液体粒子 [50, 59], 气体粒子 [110, 119], 弹性固体粒子 [230, 239]。 粒子采用个位数表示粒子特殊属性,十分位数和百分位数 (质数 2, 3, 5, 11, 23) 表示粒子相态类型。

具体分类

液体

不同密度、粘性属性的液体,被视为不同的液体,相互之间存在压强、速度差等力学和运动学关系。

固体

不同材料属性、刚体和非刚体的固体,在运动时体现着不相同的特性。

尤其是刚体,我们认为刚体内的压力传导是瞬时的,也就是刚体将看成一个整体来实现运动。 多刚体运动又会存在刚体之间的碰撞问题。

气体

与液体类似。

粒子交互

船舶水动力学领域中,不同粒子间的接触控制类型。

粒子类型 粒子类型 接触控制 代码
边界(光滑表面) 边界(光滑表面) 无交互 1
刚体(光滑表面) 刚体(光滑表面) 无交互 1
液体 液体 交互(压强、粘性、人工力) 2
液体 气体 交互(压强、粘性、人工力) 2
气体 气体 交互(压强、粘性、人工力) 2
弹性固体 弹性固体 交互(压强、粘性、人工力) 2
弹性固体 液体 交互(压强、粘性、人工力) 2
弹性固体 气体 交互(压强、粘性、人工力) 2
边界(光滑表面) 液体 排斥力 3
边界(光滑表面) 气体 排斥力 3
边界(光滑表面) 弹性固体 排斥力 3
刚体(光滑表面) 弹性固体 排斥力 3
刚体(光滑表面) 液体 压强交互 4(暂与3行为一致)
刚体(光滑表面) 气体 压强交互 4(暂与3行为一致)

粒子分类的处理方式

在数值实现上,分为非固定粒子和固定粒子两种,目前每个相态类型仅支持一种粒子同时模拟。

处理方式示例

SPHysics 倾向于对固体粒子施加排斥力,进行总体的刚体求解。